<?php
/**
 * Controller_Category
 *
 * Класс Controller_Category отвечает за обработку страниц категорий
 *
 * @author Mike
 */
class Controller_Category extends Controller_Base {

	/**
	 * Выбор действия по URL
	 *
	 */
	public function action() {
		$this->addCrumb('Главная', W_ABSPATH);
		switch ($this->arrRequest[1]) {
			case '':
				$this->actionCategoriesList();
				break;
			default:
				$url = Service_Escape::absolutelyEscapeString($this->arrRequest[1]);
				$objCategory = new Category();
				$objCategory->find('first', array('conditions' => "`category`.`url` = '" . $url . "'"));
				if(!$objCategory->id) throw new Exception('', 404);
				$this->actionCategoryPage($objCategory);
		}
	}

	/**
	 * Страница категории
	 *
	 * @param Category $objCategory- объект категории
	 */
	public function actionCategoryPage(Category $objCategory) {
		$arrCrumbs = Category::getCategoryCrumbs($objCategory->id);
		$crumbUrl = W_ABSPATH . 'categories/';
		$this->arrActiveCategoriesIds = array();
		$i = 1;
		foreach($arrCrumbs as $arrCrumb) {
			$crumbUrl .= $arrCrumb['url'];
			$this->addCrumb($arrCrumb['category_name'], $crumbUrl, $i++ == count($arrCrumbs));
			$this->arrActiveCategoriesIds[] = $arrCrumb['ID_category'];
		}
		
		// Категории для вывода в левом меню
		//$this->data['left_categories'] = $objCategory->getCategoriesForLeft();

		// Все продукты текущей категории
		$objProduct = new Product();
		$arrProducts = $objCategory->getCategoryProducts();
		
		$this->bodyAttr = 'category';
		$this->description = $objCategory->getField('meta_description');
		$this->keywords = $objCategory->getField('meta_keywords');
		$this->title = $objCategory->getField('category_name');
		$this->pageHead = $this->title . (User_Seance::isAdmin() ? ' ' . '<a href="' . W_ADMIN . 'categories/edit/' . $objCategory->id . '">(Редактировать)</a>' : '');

		$this->showHeader();
			View_Category::showCategoryPage($objCategory, $arrProducts);
		$this->showFooter();
	}
	
	/**
	 * Список всех категорий
	 *
	 */
	public function actionCategoriesList() {
		$this->showHeader();
		echo 'Курага';
		$this->showFooter();
	}
}